1. Field
The present disclosed embodiments relate generally to web browser functionality, and more specifically to reordering of operations during browser pageload.
2. Background
With regard to web browser functionality, a “mainframe” is a document rendered by a web browser (e.g., and HTML document) that typically spans a web browser's window and can include one or more self-contained components such as IFrames. Most web-based advertisements are rendered within an IFrame, or some other independent object within a mainframe of a webpage. An IFrame is an HTML addition to the Frames toolbox that creates a frame within another webpage or mainframe, where the IFrame is filled with a second webpage. The mainframe and the IFrame each have their own URLs, thus enabling the mainframe and IFrame to have distinct and independent content and functionality. This ability allows the same webpage to be displayed at different times, to different users, and on different devices, and also includes ads tailored to the time, user, or device. Since an IFrame is a feature of HTML utilized in a variety of web browsers including, for example, Safari, Firefox, Internet Explorer, and Google's CHROME, to name a few, IFrames are often used to embed advertisements within webpages.
Typically the mainframe and IFrame download via a single communication channel and are processed on a single core (see top timing chart in FIG. 3). Gaps in the network activity often arise when the application processor must dedicate its resources to parsing and executing data packets before it can resume fetching further data packets. Similarly, gaps in the network activity can arise when the application processor must parse and execute data packets before it can determine which further data packets to fetch. The communication channel is therefore underutilized and remains active even when not in use. A pageload also takes longer because scheduling network activities and processing cannot occur in parallel. Mainframe and IFrame data packets also typically compete for preferred memory slots (e.g., cache vs RAM or virtual memory). There is therefore a need in the art for systems and methods to enable more efficient utilization of network, core, and memory resources.